package xyz.bali16.application.service;


import com.baomidou.mybatisplus.extension.service.IService;
import xyz.bali16.application.entity.Menu;
import xyz.bali16.application.model.menu.MenuAddParam;
import xyz.bali16.application.model.menu.MenuQueryParam;
import xyz.bali16.application.model.menu.MenuUpdatedParam;


import java.util.Collection;
import java.util.List;


public interface MenuService extends IService<Menu> {



    /**
     * 修改状态
     * @param menuId 菜单id
     * @param status 1 启用, 0 禁用
     */
    void updateStatus(Long menuId, int status);

    /**
     * 通过菜单id删除菜单
     * @param menuId 菜单id
     *
     */
    void removeMenuById(Long menuId);

    /**
     * 修改菜单
     * @param menu 修改的菜单bean
     */
    void updateMenu(MenuUpdatedParam menu);


    /**
     * 通过菜单id删除菜单
     * @param menus 菜单集合
     */
    void removeMenuByIdsOfBean(Collection<Menu> menus);

    /**
     * 添加菜单
     * @param menu 添加的菜单bean
     */
    void addMenu(MenuAddParam menu);

    /**
     * 根据角色id查询菜单
     *
     * @param roleId 角色id
     * @return the list
     */
    List<Menu> findMenusByRoleId(String roleId);

    List<Menu> findByCurrentRole(MenuQueryParam param);

}
